/**
 * 
 */
package edu.pw.treegrid.server.filter;

import java.util.Set;

import edu.pw.treegrid.server.query.ColumnNode;
import edu.pw.treegrid.server.query.QueryTree;

/** 
 * Klasa analogiczna do EqualsFilter z tym, że ta bierze klucz główny a nie docelową kolumnę
 * 
 * @author Piotrek
 */
public class IdFilter extends SimpleFilter {

	public void generateWhere(QueryTree queryTree, StringBuilder sb) {
		Set<ColumnNode> nodes = queryTree.getColumnNodesForReportColumn(this
				.getReportColumn());
		for (ColumnNode cn : nodes) {
			if((nodes.size() == 2 && cn.isIdColumn()) || nodes.size() == 1) {
				sb.append(cn.getExpressionString());
				if(this.getValue().equals("null")) {
					sb.append(" is NULL");
				}
				else {
					sb.append(" = ?");
					this.addParameter(queryTree, this.getValue());
				}
			}
		}
	}
	
	@Override
	public OperatorType getOperatorType() {
		return OperatorType.ID;
	}
	
}